Mem0 堆 Qdrant,Letta 跑 Neo4j,Engram 选了第三条路

604 字

极客工具 极客工具 XTool 2026年6月24日 07:51

图片

副标题:一个 12MB 的 Go 单二进制,让 AI 编码 Agent 跨 session 记住一切


市面上至少有 3 个叫 "Engram" 的项目。先说清楚:本文主角是 Gentleman-Programming/engram (GitHub 上 4,600 stars 的 Go 二进制),不是 tstockham96 的 Engram Cloud + SDK(那个 LOCOMO 80% 的成绩单),也不是 invisiblemonsters 的 Engram Cognitive Memory(Python 认知记忆框架)。

别搞混。

图片


问题:为什么你的 AI 编码 Agent 每次 session 都从零开始

让 Claude Code 修同一个 bug 第三次,它又开始解释项目背景、翻文档、问你这是什么框架。不是它记不住,是它根本没机会记住。

根因有两层: context windowsession boundary 。一个对话开到 30,000 token,旧记忆被挤出去了;一个 session 结束,所有状态清零,下次从空白开始。

现有方案都不够好:手写 MEMORY.md 是纯手工劳动, claude-mem 绑死了 Claude Code, claude --resume 只能续接单次会话。你需要的是一个通用的、跨 Agent、跨 session 的持久记忆层。


Engram 是什么:一个 12MB 的 Go 二进制

Engram 是 AI 编码 Agent 的持久化记忆系统,单一 Go 二进制,零外部依赖。安装就是一行 brew install ,不用 Docker、不用 PostgreSQL、不用 Qdrant。

图片

架构只有三层:Agent → MCP stdio → engram → SQLite + FTS5。Agent 通过 MCP 协议(stdio 进程通信)调用 mem_savemem_searchmem_update 等 20 个工具,Engram 负责把记忆写到本地 SQLite,用 FTS5 做全文检索。

"单二进制 / 零依赖" 的工程意义不只是好部署。Go 编译后所有依赖静态链接,12MB 大小包了整个 CLI、HTTP API、MCP Server、TUI 四种交互面。所有改动共享同一份 SQLite 状态,没有数据漂移风险。


四种交互面,一个 engram

同一个二进制提供了四个入口:

  • CLI :给脚本用, engram mcp 启动 MCP 服务, engram setup claude-code 一键配置
  • HTTP API :给服务用, engram serve 开一个本地 HTTP 服务(默认 :7437 ),可以嵌入到其他系统
  • MCP Server :给 Agent 用,20 个工具通过 stdio 暴露给所有 MCP 兼容的 Agent(Claude Code、OpenCode、Gemini CLI、Cursor、Windsurf 都行)
  • TUI :给人用,vim 风格导航,Catppuccin Mocha 主题, engram tui 直接翻阅记忆

图片


核心机制:Local-First + Git Sync + LLM-as-Judge

Engram 的核心是 Local-First + Git Sync + LLM-as-Judge

存储层用的是 SQLite + FTS5(Full-Text Search 5),不是向量数据库。FTS5 做关键词匹配 + BM25 排序,查询速度 ~3ms。为什么不上向量?Issue #168 里有人提了 hybrid search(FTS5 + Vector + RRF),维护者说"先把现有打磨好"。工程取舍:SQLite 零运维成本,Qdrant 要跑 Docker、要调资源、要监控。

Git Sync 是另一个亮点:记忆可以像代码一样管理。 engram sync 把 SQLite 压缩成分块推到 Git,跨机器共享记忆,还能版本控制。你不是在部署一个服务,是在管理一个 git repo。

v1.17.0(2026-06-20)加了"冲突感知":FTS5 先找到候选冲突对,然后调用你已有的 Claude Code / OpenCode 当 LLM judge 做语义判断。成本? $0 。用的是你自己订阅的 Pro/Max,不需要为 Engram 再买一个 API key。通过 ENGRAM_AGENT_CLI=claudeopencode 环境变量指定。


对比:Mem0 / Letta / Zep / claude-mem,谁的方案更香

Engram 不是唯一一个做 Agent 记忆的项目。Mem0 58k stars,Letta 23.5k stars,Zep 4.7k stars,claude-mem 83k stars。但它们走的路不一样。

维度 Engram Mem0 Letta Zep claude-mem
语言 Go(单二进制) Python + TypeScript Python Python TypeScript
存储 SQLite + FTS5 Qdrant + PG PostgreSQL Neo4j + PG SQLite
MCP 支持 原生 MCP stdio 社区 wrapper 插件方式
部署复杂度 零依赖 需 Qdrant/Docker 需 PostgreSQL 需 Neo4j Node.js 插件
Engram Cloud(可选) app.mem0.ai 托管 Letta Cloud Zep Cloud
Token 效率 776 tokens/query ~2,000+ tokens/query 可变 高(图遍历)

真实使用反馈更说明问题。用户 todie 在 Gist 里实测:MCP 读 200ms,HTTP 读 3ms, 60x 差异 。建议是读操作用 Bash + curl,写操作走 MCP。

图片

设计哲学分歧很明显:Mem0/Letta/Zep 走"重量级 + 云原生",堆基础设施,目标是企业级多租户、知识图谱、时序实体关系;Engram 走"轻量级 + 本地优先",目标是编码 Agent 跨 session 记忆,零依赖,本地 SQLite 永远权威,云端只是可选复制。


Roadmap & 设计取舍:Engram 不会变成 Zep

Issue #168 有人提了五大能力提案:Hybrid Search(FTS5 + Vector)、Salience Scoring(访问加权 + 时间衰减)、Automatic Consolidation(语义合并 + lineage)、Temporal Knowledge Graph(observation_links 表)、Contextual Priming( mem_prime 工具)。

结果是: 全部 closed as not planned

维护者的立场很明确:保持极简。Engram 不会变成 Zep,不会堆知识图谱,不会上复杂的实体关系模型。生态协同是另一个方向:Gentleman Programming 还在做 gentle-ai(把 Engram + SDD + Skills 打包成一个工作流)、SDD(Spec-Driven Development),目标是让编码 Agent 不只是有记忆,还能主动规划、验证、迭代。


谁应该用 Engram

Engram 适合这些人:

  • • ✅ 需要 AI 编码 Agent 跨 session 记忆
  • • ✅ 本地优先,不想为云端记忆层付费
  • • ✅ 零依赖,不想维护 Docker / PostgreSQL / Qdrant
  • • ✅ 用 Claude Code / OpenCode / Cursor / Windsurf / VS Code Copilot

Engram 不适合这些人:

  • • ❌ 需要知识图谱、时序实体关系
  • • ❌ 企业级多租户、权限隔离
  • • ❌ 需要云端托管、SaaS 服务

5 分钟上手

三步走:

# 1. 安装
brew install gentleman-programming/tap/engram

# 2. 配置 Agent
engram setup claude-code

# 3. 使用
engram tui

第一条记忆:在 Claude Code 里问 Agent "这个项目用了什么框架",它会自动调用 mem_save 保存到 Engram。下次再问,它直接调 mem_search 翻出来,不再从零开始。


数据来源

  • • Engram GitHub [1] · 4,600 stars / 525 forks / v1.17.0 / 93 个 release
  • • Hacker News Show HN [2]
  • • todie/engram-guide 实测 Gist [3]
  • • Reddit r/ClaudeAI 讨论 [4]
  • • mcp.directory 对比 [5]

引用链接

[1] Engram GitHub: https://github.com/Gentleman-Programming/engram
[2] Hacker News Show HN: https://news.ycombinator.com/item?id=47116615
[3] todie/engram-guide 实测 Gist: https://gist.github.com/todie/7043a87d3a0f544c519bb540efbe5959
[4] Reddit r/ClaudeAI 讨论: https://www.reddit.com/r/ClaudeAI/comments/1sf3zae/claude_engram_persistent_memory_for_claude_code/
[5] mcp.directory 对比: https://mcp.directory/blog/mem0-vs-letta-vs-zep-vs-cognee-2026

前沿工具 · 目录